
#include "Taskhandler.h"

FuncPtr TaskCallFunction[TASK_MAX_ID];

void CallBackInit(void)
{
	EnumTaskID i;
	for (i=NULL_TASK_ID;i<TASK_MAX_ID;i++)
  	{
		TaskCallFunction[i] = NULL;
	}
}

/*********************************************
Function Name: register_call_back_handler
Description:
IN:	void
OUT: void

**********************************************/
void RegisterCallBackHandler(EnumTaskID task_id,FuncPtr fptr)
{
   /**********************************
      local variable
   ***********************************/ 
   /**********************************
      code body
   ***********************************/
   if (fptr != NULL)
   {
      TaskCallFunction[task_id] = fptr;
   }
}

/*********************************************
Function Name: delete_task_manager
Description:
IN:	void
OUT: void

**********************************************/
void DeleteTaskManager(EnumTaskID task_id)
{
	TaskCallFunction[task_id] = NULL;
}


/*********************************************
Function Name: system_task_manager
Description:
IN:	void
OUT: void

**********************************************/
void SystemTaskManager(void)
{
   /**********************************
      local variable
   ***********************************/ 
   EnumTaskID i;
   /**********************************
      code body
   *****iiii******************************/
   for (i=NULL_TASK_ID;i<TASK_MAX_ID;i++)
   {
       if (TaskCallFunction[i] != NULL)
       {
           (*TaskCallFunction[i])();
       }
   }
}

